cmake_minimum_required(VERSION 3.24)
project(AES128ChipSystemC)

set(CMAKE_CXX_STANDARD 14)

link_directories(C:\\Users\\wkm\\CLionProjects\\systemc-2.3.3\\cmake-build-debug\\src)
include_directories(C:\\Users\\wkm\\CLionProjects\\systemc-2.3.3\\src)
link_libraries(systemc.a)

add_executable(
        AES128ChipSystemC
        ChipBus/uart_logic.h
        ChipBus/uart.h
        ChipBus/types.h
        ChipBus/types.cpp
        ChipBus/tools.cpp
        ChipBus/slow_mem.h
        ChipBus/slave_if.h
        ChipBus/request.h
        ChipBus/non_blocking_if.h
        ChipBus/master_non_blocking.h
        ChipBus/master_non_blocking.cpp
        ChipBus/master_direct.h
        ChipBus/master_direct.cpp
        ChipBus/master_blocking.h
        ChipBus/master_blocking.cpp
        ChipBus/bus.h
        ChipBus/bus.cpp
        ChipBus/arbiter.h
        ChipBus/arbiter.cpp
        ChipBus/display_tools.h
        ChipBus/fast_mem.h
        core_module/CONSTANT.h
        FiniteFieldMul/x2time.cpp
        FiniteFieldMul/x2time.h
        testbench/x2time_driver.cpp
        testbench/x2time_driver.h
        testbench/x2time_monitor.cpp
        testbench/x2time_monitor.h
        testbench/sc_main.cpp
        testbench/x2time_test.cpp
        testbench/x2time_test.h
        FiniteFieldMul/x3time.cpp
        FiniteFieldMul/x3time.h
        testbench/x3time_driver.cpp
        testbench/x3time_driver.h
        testbench/x3time_monitor.cpp
        testbench/x3time_monitor.h
        testbench/x3time_test.cpp
        testbench/x3time_test.h
        FiniteFieldMul/x4time.cpp
        FiniteFieldMul/x4time.h
        testbench/x4time_driver.cpp
        testbench/x4time_driver.h
        testbench/x4time_monitor.cpp
        testbench/x4time_monitor.h
        testbench/x4time_test.cpp
        testbench/x4time_test.h
        FiniteFieldMul/x8time.cpp
        FiniteFieldMul/x8time.h
        testbench/x8time_driver.cpp
        testbench/x8time_driver.h
        testbench/x8time_monitor.cpp
        testbench/x8time_monitor.h
        testbench/x8time_test.cpp
        testbench/x8time_test.h
        FiniteFieldMul/x9time.cpp
        FiniteFieldMul/x9time.h
        testbench/x9time_driver.cpp
        testbench/x9time_driver.h
        testbench/x9time_monitor.cpp
        testbench/x9time_monitor.h
        testbench/x9time_test.cpp
        testbench/x9time_test.h
        FiniteFieldMul/xBtime.cpp
        FiniteFieldMul/xBtime.h
        testbench/xBtime_driver.cpp
        testbench/xBtime_driver.h
        testbench/xBtime_monitor.cpp
        testbench/xBtime_monitor.h
        testbench/xBtime_test.cpp
        testbench/xBtime_test.h
        FiniteFieldMul/xDtime.cpp
        FiniteFieldMul/xDtime.h
        testbench/xDtime_driver.cpp
        testbench/xDtime_driver.h
        testbench/xDtime_monitor.cpp
        testbench/xDtime_monitor.h
        testbench/xDtime_test.cpp
        testbench/xDtime_test.h
        FiniteFieldMul/xEtime.h
        FiniteFieldMul/xEtime.cpp
        testbench/xEtime_driver.cpp
        testbench/xEtime_driver.h
        testbench/xEtime_monitor.cpp
        testbench/xEtime_monitor.h
        testbench/xEtime_test.cpp
        testbench/xEtime_test.h
        ROM/sbox.cpp
        ROM/sbox.h
        ROM/contrary_sbox.cpp
        ROM/contrary_sbox.h
        testbench/sbox_driver.cpp
        testbench/sbox_driver.h
        testbench/sbox_monitor.cpp
        testbench/sbox_monitor.h
        testbench/sbox_test.cpp
        testbench/sbox_test.h
        core_module/shiftrows.cpp
        core_module/shiftrows.h
        testbench/shiftrows_driver.cpp
        testbench/shiftrows_driver.h
        testbench/shiftrows_monitor.cpp
        testbench/shiftrows_monitor.h
        testbench/shiftrows_test.cpp
        testbench/shiftrows_test.h
        core_module/mixcolumns.cpp
        core_module/mixcolumns.h
        testbench/mixcolumns_driver.cpp
        testbench/mixcolumns_driver.h
        testbench/mixcolumns_monitor.cpp
        testbench/mixcolumns_monitor.h
        testbench/mixcolumns_test.cpp
        testbench/mixcolumns_test.h
        core_module/schedulekey.cpp
        core_module/schedulekey.h
        testbench/schedulekey_driver.cpp
        testbench/schedulekey_driver.h
        testbench/schedulekey_monitor.cpp
        testbench/schedulekey_monitor.h
        testbench/schedulekey_test.cpp
        testbench/schedulekey_test.h
        core_module/aes128en.cpp
        core_module/aes128en.h
        testbench/aes128_driver.cpp
        testbench/aes128_driver.h
        testbench/aes128_monitor.cpp
        testbench/aes128_monitor.h
        testbench/aes128_test.cpp
        testbench/aes128_test.h
)
